package com.ehotting.edsta.circuitDesign.generator.domain;

import java.io.Serializable;
import java.util.Date;

/**
 * 
 * @TableName ot_data_dictionary
 */
public class OtDataDictionary implements Serializable {
    /**
     * 数据字典ID，主键
     */
    private Integer dictionaryID;

    /**
     * 实体类型
     */
    private Object entityType;

    /**
     * 实体名称
     */
    private String entityName;

    /**
     * 实体描述
     */
    private String description;

    /**
     * 模式（Schema）名称，如果是数据库表等的一部分
     */
    private String schemaName;

    /**
     * 数据类型（对于列等）
     */
    private String dataType;

    /**
     * 长度（对于某些数据类型）
     */
    private Integer length;

    /**
     * 精度（对于数值类型）
     */
    private Integer precisions;

    /**
     * 小数位数（对于数值类型）
     */
    private Integer scale;

    /**
     * 是否允许为空
     */
    private Integer nullable;

    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 是否为主键
     */
    private Integer primaryKey;

    /**
     * 是否为外键
     */
    private Integer foreignKey;

    /**
     * 外键引用的表名（如果为外键）
     */
    private String foreignKeyTable;

    /**
     * 外键引用的列名（如果为外键）
     */
    private String foreignKeyColumn;

    /**
     * 是否为唯一约束
     */
    private Integer uniqueConstraint;

    /**
     * 检查约束条件
     */
    private String checkConstraint;

    /**
     * 索引名称（如果为索引）
     */
    private String indexName;

    /**
     * 索引列（以逗号分隔的列名列表，如果为索引）
     */
    private String indexColumns;

    /**
     * 索引列是否升序（如果为索引的一部分）
     */
    private Integer isAscending;

    /**
     * 存储过程名称（如果为存储过程）
     */
    private String procedureName;

    /**
     * 函数名称（如果为函数）
     */
    private String functionName;

    /**
     * 触发器名称（如果为触发器）
     */
    private String triggerName;

    /**
     * 触发器事件（如果为触发器）
     */
    private Object triggerEvent;

    /**
     * 触发器时机（如果为触发器）
     */
    private Object triggerTiming;

    /**
     * 视图定义（如果为视图）
     */
    private String viewDefinition;

    /**
     * 创建者
     */
    private String createdBy;

    /**
     * 创建时间
     */
    private Date createdDate;

    /**
     * 最后修改者
     */
    private String modifiedBy;

    /**
     * 最后修改时间
     */
    private Date modifiedDate;

    /**
     * 状态
     */
    private Object statu;

    /**
     * 额外注释
     */
    private String comments;

    /**
     * 示例数据
     */
    private String exampleData;

    private static final long serialVersionUID = 1L;

    /**
     * 数据字典ID，主键
     */
    public Integer getDictionaryID() {
        return dictionaryID;
    }

    /**
     * 数据字典ID，主键
     */
    public void setDictionaryID(Integer dictionaryID) {
        this.dictionaryID = dictionaryID;
    }

    /**
     * 实体类型
     */
    public Object getEntityType() {
        return entityType;
    }

    /**
     * 实体类型
     */
    public void setEntityType(Object entityType) {
        this.entityType = entityType;
    }

    /**
     * 实体名称
     */
    public String getEntityName() {
        return entityName;
    }

    /**
     * 实体名称
     */
    public void setEntityName(String entityName) {
        this.entityName = entityName;
    }

    /**
     * 实体描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 实体描述
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 模式（Schema）名称，如果是数据库表等的一部分
     */
    public String getSchemaName() {
        return schemaName;
    }

    /**
     * 模式（Schema）名称，如果是数据库表等的一部分
     */
    public void setSchemaName(String schemaName) {
        this.schemaName = schemaName;
    }

    /**
     * 数据类型（对于列等）
     */
    public String getDataType() {
        return dataType;
    }

    /**
     * 数据类型（对于列等）
     */
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }

    /**
     * 长度（对于某些数据类型）
     */
    public Integer getLength() {
        return length;
    }

    /**
     * 长度（对于某些数据类型）
     */
    public void setLength(Integer length) {
        this.length = length;
    }

    /**
     * 精度（对于数值类型）
     */
    public Integer getPrecisions() {
        return precisions;
    }

    /**
     * 精度（对于数值类型）
     */
    public void setPrecisions(Integer precisions) {
        this.precisions = precisions;
    }

    /**
     * 小数位数（对于数值类型）
     */
    public Integer getScale() {
        return scale;
    }

    /**
     * 小数位数（对于数值类型）
     */
    public void setScale(Integer scale) {
        this.scale = scale;
    }

    /**
     * 是否允许为空
     */
    public Integer getNullable() {
        return nullable;
    }

    /**
     * 是否允许为空
     */
    public void setNullable(Integer nullable) {
        this.nullable = nullable;
    }

    /**
     * 默认值
     */
    public String getDefaultValue() {
        return defaultValue;
    }

    /**
     * 默认值
     */
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }

    /**
     * 是否为主键
     */
    public Integer getPrimaryKey() {
        return primaryKey;
    }

    /**
     * 是否为主键
     */
    public void setPrimaryKey(Integer primaryKey) {
        this.primaryKey = primaryKey;
    }

    /**
     * 是否为外键
     */
    public Integer getForeignKey() {
        return foreignKey;
    }

    /**
     * 是否为外键
     */
    public void setForeignKey(Integer foreignKey) {
        this.foreignKey = foreignKey;
    }

    /**
     * 外键引用的表名（如果为外键）
     */
    public String getForeignKeyTable() {
        return foreignKeyTable;
    }

    /**
     * 外键引用的表名（如果为外键）
     */
    public void setForeignKeyTable(String foreignKeyTable) {
        this.foreignKeyTable = foreignKeyTable;
    }

    /**
     * 外键引用的列名（如果为外键）
     */
    public String getForeignKeyColumn() {
        return foreignKeyColumn;
    }

    /**
     * 外键引用的列名（如果为外键）
     */
    public void setForeignKeyColumn(String foreignKeyColumn) {
        this.foreignKeyColumn = foreignKeyColumn;
    }

    /**
     * 是否为唯一约束
     */
    public Integer getUniqueConstraint() {
        return uniqueConstraint;
    }

    /**
     * 是否为唯一约束
     */
    public void setUniqueConstraint(Integer uniqueConstraint) {
        this.uniqueConstraint = uniqueConstraint;
    }

    /**
     * 检查约束条件
     */
    public String getCheckConstraint() {
        return checkConstraint;
    }

    /**
     * 检查约束条件
     */
    public void setCheckConstraint(String checkConstraint) {
        this.checkConstraint = checkConstraint;
    }

    /**
     * 索引名称（如果为索引）
     */
    public String getIndexName() {
        return indexName;
    }

    /**
     * 索引名称（如果为索引）
     */
    public void setIndexName(String indexName) {
        this.indexName = indexName;
    }

    /**
     * 索引列（以逗号分隔的列名列表，如果为索引）
     */
    public String getIndexColumns() {
        return indexColumns;
    }

    /**
     * 索引列（以逗号分隔的列名列表，如果为索引）
     */
    public void setIndexColumns(String indexColumns) {
        this.indexColumns = indexColumns;
    }

    /**
     * 索引列是否升序（如果为索引的一部分）
     */
    public Integer getIsAscending() {
        return isAscending;
    }

    /**
     * 索引列是否升序（如果为索引的一部分）
     */
    public void setIsAscending(Integer isAscending) {
        this.isAscending = isAscending;
    }

    /**
     * 存储过程名称（如果为存储过程）
     */
    public String getProcedureName() {
        return procedureName;
    }

    /**
     * 存储过程名称（如果为存储过程）
     */
    public void setProcedureName(String procedureName) {
        this.procedureName = procedureName;
    }

    /**
     * 函数名称（如果为函数）
     */
    public String getFunctionName() {
        return functionName;
    }

    /**
     * 函数名称（如果为函数）
     */
    public void setFunctionName(String functionName) {
        this.functionName = functionName;
    }

    /**
     * 触发器名称（如果为触发器）
     */
    public String getTriggerName() {
        return triggerName;
    }

    /**
     * 触发器名称（如果为触发器）
     */
    public void setTriggerName(String triggerName) {
        this.triggerName = triggerName;
    }

    /**
     * 触发器事件（如果为触发器）
     */
    public Object getTriggerEvent() {
        return triggerEvent;
    }

    /**
     * 触发器事件（如果为触发器）
     */
    public void setTriggerEvent(Object triggerEvent) {
        this.triggerEvent = triggerEvent;
    }

    /**
     * 触发器时机（如果为触发器）
     */
    public Object getTriggerTiming() {
        return triggerTiming;
    }

    /**
     * 触发器时机（如果为触发器）
     */
    public void setTriggerTiming(Object triggerTiming) {
        this.triggerTiming = triggerTiming;
    }

    /**
     * 视图定义（如果为视图）
     */
    public String getViewDefinition() {
        return viewDefinition;
    }

    /**
     * 视图定义（如果为视图）
     */
    public void setViewDefinition(String viewDefinition) {
        this.viewDefinition = viewDefinition;
    }

    /**
     * 创建者
     */
    public String getCreatedBy() {
        return createdBy;
    }

    /**
     * 创建者
     */
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 创建时间
     */
    public Date getCreatedDate() {
        return createdDate;
    }

    /**
     * 创建时间
     */
    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    /**
     * 最后修改者
     */
    public String getModifiedBy() {
        return modifiedBy;
    }

    /**
     * 最后修改者
     */
    public void setModifiedBy(String modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    /**
     * 最后修改时间
     */
    public Date getModifiedDate() {
        return modifiedDate;
    }

    /**
     * 最后修改时间
     */
    public void setModifiedDate(Date modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

    /**
     * 状态
     */
    public Object getStatu() {
        return statu;
    }

    /**
     * 状态
     */
    public void setStatu(Object statu) {
        this.statu = statu;
    }

    /**
     * 额外注释
     */
    public String getComments() {
        return comments;
    }

    /**
     * 额外注释
     */
    public void setComments(String comments) {
        this.comments = comments;
    }

    /**
     * 示例数据
     */
    public String getExampleData() {
        return exampleData;
    }

    /**
     * 示例数据
     */
    public void setExampleData(String exampleData) {
        this.exampleData = exampleData;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        OtDataDictionary other = (OtDataDictionary) that;
        return (this.getDictionaryID() == null ? other.getDictionaryID() == null : this.getDictionaryID().equals(other.getDictionaryID()))
            && (this.getEntityType() == null ? other.getEntityType() == null : this.getEntityType().equals(other.getEntityType()))
            && (this.getEntityName() == null ? other.getEntityName() == null : this.getEntityName().equals(other.getEntityName()))
            && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()))
            && (this.getSchemaName() == null ? other.getSchemaName() == null : this.getSchemaName().equals(other.getSchemaName()))
            && (this.getDataType() == null ? other.getDataType() == null : this.getDataType().equals(other.getDataType()))
            && (this.getLength() == null ? other.getLength() == null : this.getLength().equals(other.getLength()))
            && (this.getPrecisions() == null ? other.getPrecisions() == null : this.getPrecisions().equals(other.getPrecisions()))
            && (this.getScale() == null ? other.getScale() == null : this.getScale().equals(other.getScale()))
            && (this.getNullable() == null ? other.getNullable() == null : this.getNullable().equals(other.getNullable()))
            && (this.getDefaultValue() == null ? other.getDefaultValue() == null : this.getDefaultValue().equals(other.getDefaultValue()))
            && (this.getPrimaryKey() == null ? other.getPrimaryKey() == null : this.getPrimaryKey().equals(other.getPrimaryKey()))
            && (this.getForeignKey() == null ? other.getForeignKey() == null : this.getForeignKey().equals(other.getForeignKey()))
            && (this.getForeignKeyTable() == null ? other.getForeignKeyTable() == null : this.getForeignKeyTable().equals(other.getForeignKeyTable()))
            && (this.getForeignKeyColumn() == null ? other.getForeignKeyColumn() == null : this.getForeignKeyColumn().equals(other.getForeignKeyColumn()))
            && (this.getUniqueConstraint() == null ? other.getUniqueConstraint() == null : this.getUniqueConstraint().equals(other.getUniqueConstraint()))
            && (this.getCheckConstraint() == null ? other.getCheckConstraint() == null : this.getCheckConstraint().equals(other.getCheckConstraint()))
            && (this.getIndexName() == null ? other.getIndexName() == null : this.getIndexName().equals(other.getIndexName()))
            && (this.getIndexColumns() == null ? other.getIndexColumns() == null : this.getIndexColumns().equals(other.getIndexColumns()))
            && (this.getIsAscending() == null ? other.getIsAscending() == null : this.getIsAscending().equals(other.getIsAscending()))
            && (this.getProcedureName() == null ? other.getProcedureName() == null : this.getProcedureName().equals(other.getProcedureName()))
            && (this.getFunctionName() == null ? other.getFunctionName() == null : this.getFunctionName().equals(other.getFunctionName()))
            && (this.getTriggerName() == null ? other.getTriggerName() == null : this.getTriggerName().equals(other.getTriggerName()))
            && (this.getTriggerEvent() == null ? other.getTriggerEvent() == null : this.getTriggerEvent().equals(other.getTriggerEvent()))
            && (this.getTriggerTiming() == null ? other.getTriggerTiming() == null : this.getTriggerTiming().equals(other.getTriggerTiming()))
            && (this.getViewDefinition() == null ? other.getViewDefinition() == null : this.getViewDefinition().equals(other.getViewDefinition()))
            && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy()))
            && (this.getCreatedDate() == null ? other.getCreatedDate() == null : this.getCreatedDate().equals(other.getCreatedDate()))
            && (this.getModifiedBy() == null ? other.getModifiedBy() == null : this.getModifiedBy().equals(other.getModifiedBy()))
            && (this.getModifiedDate() == null ? other.getModifiedDate() == null : this.getModifiedDate().equals(other.getModifiedDate()))
            && (this.getStatu() == null ? other.getStatu() == null : this.getStatu().equals(other.getStatu()))
            && (this.getComments() == null ? other.getComments() == null : this.getComments().equals(other.getComments()))
            && (this.getExampleData() == null ? other.getExampleData() == null : this.getExampleData().equals(other.getExampleData()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getDictionaryID() == null) ? 0 : getDictionaryID().hashCode());
        result = prime * result + ((getEntityType() == null) ? 0 : getEntityType().hashCode());
        result = prime * result + ((getEntityName() == null) ? 0 : getEntityName().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        result = prime * result + ((getSchemaName() == null) ? 0 : getSchemaName().hashCode());
        result = prime * result + ((getDataType() == null) ? 0 : getDataType().hashCode());
        result = prime * result + ((getLength() == null) ? 0 : getLength().hashCode());
        result = prime * result + ((getPrecisions() == null) ? 0 : getPrecisions().hashCode());
        result = prime * result + ((getScale() == null) ? 0 : getScale().hashCode());
        result = prime * result + ((getNullable() == null) ? 0 : getNullable().hashCode());
        result = prime * result + ((getDefaultValue() == null) ? 0 : getDefaultValue().hashCode());
        result = prime * result + ((getPrimaryKey() == null) ? 0 : getPrimaryKey().hashCode());
        result = prime * result + ((getForeignKey() == null) ? 0 : getForeignKey().hashCode());
        result = prime * result + ((getForeignKeyTable() == null) ? 0 : getForeignKeyTable().hashCode());
        result = prime * result + ((getForeignKeyColumn() == null) ? 0 : getForeignKeyColumn().hashCode());
        result = prime * result + ((getUniqueConstraint() == null) ? 0 : getUniqueConstraint().hashCode());
        result = prime * result + ((getCheckConstraint() == null) ? 0 : getCheckConstraint().hashCode());
        result = prime * result + ((getIndexName() == null) ? 0 : getIndexName().hashCode());
        result = prime * result + ((getIndexColumns() == null) ? 0 : getIndexColumns().hashCode());
        result = prime * result + ((getIsAscending() == null) ? 0 : getIsAscending().hashCode());
        result = prime * result + ((getProcedureName() == null) ? 0 : getProcedureName().hashCode());
        result = prime * result + ((getFunctionName() == null) ? 0 : getFunctionName().hashCode());
        result = prime * result + ((getTriggerName() == null) ? 0 : getTriggerName().hashCode());
        result = prime * result + ((getTriggerEvent() == null) ? 0 : getTriggerEvent().hashCode());
        result = prime * result + ((getTriggerTiming() == null) ? 0 : getTriggerTiming().hashCode());
        result = prime * result + ((getViewDefinition() == null) ? 0 : getViewDefinition().hashCode());
        result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode());
        result = prime * result + ((getCreatedDate() == null) ? 0 : getCreatedDate().hashCode());
        result = prime * result + ((getModifiedBy() == null) ? 0 : getModifiedBy().hashCode());
        result = prime * result + ((getModifiedDate() == null) ? 0 : getModifiedDate().hashCode());
        result = prime * result + ((getStatu() == null) ? 0 : getStatu().hashCode());
        result = prime * result + ((getComments() == null) ? 0 : getComments().hashCode());
        result = prime * result + ((getExampleData() == null) ? 0 : getExampleData().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", dictionaryID=").append(dictionaryID);
        sb.append(", entityType=").append(entityType);
        sb.append(", entityName=").append(entityName);
        sb.append(", description=").append(description);
        sb.append(", schemaName=").append(schemaName);
        sb.append(", dataType=").append(dataType);
        sb.append(", length=").append(length);
        sb.append(", precisions=").append(precisions);
        sb.append(", scale=").append(scale);
        sb.append(", nullable=").append(nullable);
        sb.append(", defaultValue=").append(defaultValue);
        sb.append(", primaryKey=").append(primaryKey);
        sb.append(", foreignKey=").append(foreignKey);
        sb.append(", foreignKeyTable=").append(foreignKeyTable);
        sb.append(", foreignKeyColumn=").append(foreignKeyColumn);
        sb.append(", uniqueConstraint=").append(uniqueConstraint);
        sb.append(", checkConstraint=").append(checkConstraint);
        sb.append(", indexName=").append(indexName);
        sb.append(", indexColumns=").append(indexColumns);
        sb.append(", isAscending=").append(isAscending);
        sb.append(", procedureName=").append(procedureName);
        sb.append(", functionName=").append(functionName);
        sb.append(", triggerName=").append(triggerName);
        sb.append(", triggerEvent=").append(triggerEvent);
        sb.append(", triggerTiming=").append(triggerTiming);
        sb.append(", viewDefinition=").append(viewDefinition);
        sb.append(", createdBy=").append(createdBy);
        sb.append(", createdDate=").append(createdDate);
        sb.append(", modifiedBy=").append(modifiedBy);
        sb.append(", modifiedDate=").append(modifiedDate);
        sb.append(", statu=").append(statu);
        sb.append(", comments=").append(comments);
        sb.append(", exampleData=").append(exampleData);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}